﻿using PMS.Core.Configuration;
using System.Collections.Generic;

namespace PMS.Data.Entities.Settings
{
    /// <summary>
    /// Security settings
    /// </summary>
    public class SecuritySettings : ISettings
    {
        /// <summary>
        /// Gets or sets an encryption key
        /// </summary>
        public string EncryptionKey { get; set; }

        /// <summary>
        /// Gets or sets a list of admin area allowed IP addresses
        /// </summary>
        public List<string> AdminAreaAllowedIpAddresses { get; set; }

        /// <summary>
        /// Get or set the blacklist of static file extension for plugin directories
        /// </summary>
        public string PluginStaticFileExtensionsBlacklist { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to allow non-ASCII characters in headers
        /// </summary>
        public bool AllowNonAsciiCharactersInHeaders { get; set; }

        /// <summary>
        /// For Jwt Authentication Settings
        /// </summary>
        public string JwtValidIssuer { get; set; }
        public string JwtValidAudience { get; set; }
        public string JwtIssuerSigningKey { get; set; }
        public int JwtExpirationMinutes { get; set; }
    }
}
